#include "LevelDescriptor.h"

using namespace game_engine::data_format;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

LevelDescriptor::LevelDescriptor(void)
    : screenInfo()
{
}

LevelDescriptor::~LevelDescriptor(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////

void LevelDescriptor::parse(const string &filename)
{
    // FIXME : this is UGLY!! I cannot find the way to parse the file into
    // XmlUtils. It seems to be a problem with the copy constructor of the
    // xml_document template
    // Read all content from input file and store it into a single string
    string fileContent = XmlUtils::readAll(filename);
    // Parse the whole XML file
    XmlDocument doc;
    doc.parse<0>(const_cast<char *>(fileContent.c_str()));
    
    // Parse screen information
    screenInfo.parse(doc);
}

///////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////

const ScreenInfo& LevelDescriptor::getScreenInfo(void) const
{
    return screenInfo;
}
